Film companies are known to change certain colors to, for instance, show skin more tanned or the sky a different shade of blue. This is relatively easy when one has control over most every aspect of the image capturing and image production process. However, when the input image has been captured and rendered in an unknown way, improving certain colors therein becomes more complicated. This often involves segmenting colors believed to make up a certain color then adjusting these toward a preferred color point. This is computationally intensive, subject to failure, and often results in non-smooth transitions between different color regions such as skin color and non-skin color areas.
Another approach is to specify both original and desired color and then apply a vector from original to desired color with the effect of the vector smoothly decaying for nearby colors in color space. One problem with this approach is non-monotonic behavior leading to color reversals. Other techniques involve a weighting function for transforming a color to a new color and smoothly adjusting surrounding colors without inducing any tone reversals using a Gaussian weight on the difference between the input and the desired output. This method also uses a conditional function to insure monotonicity of the input to output relationship. Another technique transforms an input color to a desired output color and colors surrounding the input color are appropriately warped to give smooth and monotonic output using a concept of color gravity wells toward which other colors are adjusted. However, this technique is specific to neutrals and pure primaries and secondaries.
What is needed in this art is a method for adjusting input colors in the direction of a specified output color to improve image appearance that acts on colors in color space rather than adjusting the colors of certain pixels spatially to robustly render critical colors which are known a priori.